@附加权限(安卓权限.网络权限)
@附加权限(安卓权限.文件权限_读取)
@附加权限(安卓权限.文件权限_写入)
类 抖音去水印

	变量 网络工具1:网络工具
	变量 网址1:文本
	变量 次数:整数=0
	变量 omaiame:文本

	方法 抖音解析1(网址:文本)
		订阅事件
		网址1=网址
		变量 请求头名称:文本 = "User-Agent"
		变量 请求头文本:文本 = "Mozilla/5.0 (Linux; Android 10; VOG-AL10 Build/HUAWEIVOG-AL10) AppleWebKit/537.36 (KHTML, like Gecko)  Chrome/83.0.4103.106 Mobile Safari/537.36"
		网络工具1.添加请求头(请求头名称,请求头文本)
		如果 网址1 ? "http" 则
			如果 网址1 == "" 则
				抖音解析结果("链接不能为空")
			否则
				网络工具1.添加请求头(请求头名称,请求头文本)
				网络工具1.取网页源码(网址1)
			结束 如果

		否则
			抖音解析结果("链接错误")
		结束 如果

	结束 方法

	/*
	当取网页源码(Get)结束时触发该事件
	并返回取源结果和cookie
	*/
	事件 网络工具1:取网页源码结束(结果 : 文本,内容 : 字节[],cookie : 文本)
		变量 返回结果 : 文本= Unicode转中文(结果.截取文本("window._ROUTER_DATA = ","</script>"))
		//抖音解析结果(结果)
		出结果(返回结果)
	结束 事件
	变量 类型1:文本
	方法 出结果(结果:文本)

		开始俘获异常()
		变量 JSON对象0 : JSON对象 = 结果
		变量 item =是否视频(JSON对象0).取JSON数组("item_list")
		循环(i, 0, item.长度)
			变量 info = item.取JSON对象(i)
			//如果 类型1 == "图片" 则
			如果 info.取对象("images").到文本() ? "[{" 则
				类型("图片")
				类型1="图片"
				//JSON对象2.取JSON数组("images")
				图片集合(info.取JSON数组("images"))
			否则 类型1 == "图片"
				图片集合(info.取JSON数组("images"))
			结束 如果
			//视频作者信息

			变量 desc = info.取文本("desc")
			变量 video_info = info.取JSON对象("author")
			变量 video_author = video_info["nickname"]
			变量 avatar_thumb : JSON对象 = video_info.取JSON对象("avatar_thumb")
			变量 url_list : JSON数组 = avatar_thumb.取JSON数组("url_list")
			变量 cover_url:文本=url_list.取文本(0)
			//最后视频链接重定向不会取
			变量 video : JSON对象 = info.取JSON对象("video")
			变量 play_addr1 : JSON对象 = video.取JSON对象("play_addr")
			//变量 uri : 文本 = play_addr1["uri"]
			变量 url_lista : JSON数组 = play_addr1.取JSON数组("url_list")
			变量 video_url:文本=url_lista.取文本(0).替换("playwm", "play")
			如果 info ? "music" 则
				//音乐信息
				变量 music_info = info.取JSON对象("music")
				变量 music_title = music_info["title"]
				变量 music_author = music_info["author"]
				变量 music_cover_hd = music_info.取JSON对象("cover_hd").取JSON数组("url_list").取文本(0)


				抖音解析结果("标题：" + desc.到文本() + "\n\n" + "作者：" + video_author.到文本() + "\n\n" + "作者头像：" + cover_url.到文本() +  "\n\n" +  "音乐标题：" + music_title.到文本() +  "\n\n" + "音乐作者名称：" + music_author.到文本() +  "\n\n" + "音乐作者头像：" + music_cover_hd.到文本() +  "\n\n" + "视频链接：" + video_url.到文本())
				抖音解析数据(desc.到文本(),video_author.到文本(),cover_url.到文本(),music_title.到文本(),music_author.到文本(),music_cover_hd.到文本(),video_url.到文本())

			否则
				抖音解析结果("标题：" + desc.到文本() + "\n\n" + "作者：" + video_author.到文本() + "\n\n" + "作者头像：" + cover_url.到文本() +  "\n\n" + "\n\n" + "视频链接：" + video_url.到文本())
				抖音解析数据(desc.到文本(),video_author.到文本(),cover_url.到文本(),"","","",video_url.到文本())

			结束 如果

		结束 循环

		次数=0
		俘获所有异常()

		次数=次数+1
		如果 次数>=60 则
			抖音解析结果("抱歉，获取次数已起过("+次数+")")
		否则
			抖音解析结果("获取失败，现在努力获取中("+次数+")")
			抖音解析1(网址1)
		结束 如果

		结束俘获异常()


	结束 方法


	方法 图片集合(结果:JSON数组)

		变量 images : JSON数组 = 结果
		循环(索引, 0, images.长度)
			变量 项目1 : JSON对象 = images[索引]
			//变量 uri1 : 文本 = 项目1["uri"]
			变量 url_list : JSON数组 = 项目1["url_list"]
			抖音图片集合(url_list.取文本(0))
			//这个无水印
			//循环(索引, 0, url_list.长度)
			//变量 项目1 : 文本 = url_list[索引]
			//	抖音图片集合(项目1)
			//结束 循环
			/*
			//这个是有水印
			变量 download_url_list : JSON数组 = 项目1["download_url_list"]
			循环(索引, 0, download_url_list.长度)
				变量 项目1 : 文本 = download_url_list[索引]
			结束 循环
			*/
			//变量 height : 整数 = 项目1["height"]//高度
			//变量 width : 整数 = 项目1["width"]//宽度

		结束 循环

	结束 方法

	方法 是否视频(json对象a:JSON对象):JSON对象
		//变量 videoInfoRes : JSON对象 = json对象a.取JSON对象("loaderData").取JSON对象("video_(id)/page").取JSON对象("videoInfoRes")
		//变量 item_list : JSON对象 = videoInfoRes
		//返回 item_list

		变量 loaderData1 : JSON对象 = json对象a.取JSON对象("loaderData")
		如果 loaderData1.是否存在("video_layout")==真 则
			类型1="视频"
			类型("视频")
			变量 note_page : JSON对象 = loaderData1.取JSON对象("video_(id)/page")
			变量 videoInfoRes1 : JSON对象 = note_page.取JSON对象("videoInfoRes")
			返回 videoInfoRes1
		否则
			类型1="图片"
			类型("图片")
			变量 note_page : JSON对象 = loaderData1.取JSON对象("note_(id)/page")
			变量 videoInfoRes1 : JSON对象 = note_page.取JSON对象("videoInfoRes")
			返回 videoInfoRes1

		结束 如果
	结束 方法



	/*
	当取网页源码(Get)失败时触发该事件
	*/
	事件 网络工具1:取网页源码失败()
		抖音解析结果("网络可能有异常")
	结束 事件

	定义事件 类型(结果1:文本)
	定义事件 抖音图片集合(图片:文本)
	定义事件 抖音解析结果(结果1:文本)
	定义事件 抖音解析数据(标题:文本,作者:文本,标题头像:文本,音乐标题:文本,音乐作者名称:文本,音乐作者头像:文本,视频链接:文本)
结束 类